package controldefectos

class DefectoController {
    def scaffold = Defecto

    def listar ={
        [defectos : Defecto.findAll()]
    }

    def levantar = {
        [
            sistemas : Sistema.findAll(),
            ingenieros_de_pruebas: Ingeniero.obtenerIngenierosDePruebas(),
            ingenieros_de_desarrollo: Ingeniero.obtenerIngenierosDeDesarrollo(),
            errores : Error.findAll()
        ]
    }

    def agregar = {

        def ing_pruebas = Ingeniero.find("from Ingeniero as i where i.id=:id", [id:Integer.parseInt(params['ingeniero'])])
        def ing_desarrollo = Ingeniero.find("from Ingeniero as i where i.id=:id", [id:Integer.parseInt(params['asignadoA'])])

        def defect = new Defecto(
            numControl : params['numControl'],
            error : Error.find("from Error as e where e.id=:id",[id: Integer.parseInt(params['error'])]),
            fecha : params['fecha'],
            clase : params['clase'],
            modulo : params['modulo'],
            posibleSolucion : params['posibleSolucion'],
            observaciones : params['observaciones'],
            justificacion : params['justificacion'],
            solucionado : false,
            sistema : Sistema.find("from Sistema as s where s.id=:id",[id: Integer.parseInt(params['sistema'])]),
            ingeniero : ing_pruebas,
            asignadoA : ing_desarrollo
        ).save()
        
        redirect(action:"listar")
    }

    def atender = {
        [defecto: Defecto.find("from Defecto as d where d.id=:_id",[_id: Integer.parseInt(params.defectoId)])]
    }

    def actualizar = {

        def defecto = Defecto.find("from Defecto as d where d.id=:_id",[_id: Integer.parseInt(params.id)])
        defecto.observaciones = params.observaciones
        defecto.justificacion = params.justificacion
        defecto.solucionado   = ( "on" == params.solucionado ) ? true: false
        defecto.save()
        redirect(action:"listar")
    }
}
